﻿Imports EVOLTA.Promocion.Bl.Bc
Imports EVOLTA.Promocion.Bl.Be

Partial Class reportes_consultaInmueblesEtapaVendidos
    Inherits System.Web.UI.Page

    Private inmueble As EunidInmobiliarias = Nothing
    Private inmuebles As List(Of EunidInmobiliarias) = Nothing

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Response.CacheControl = "no-cache"
        Response.AddHeader("Pragma", "no-cache")
        Response.Expires = -1
        '***********************************************************'
        If Not IsPostBack Then
            cargarTipoConstruccion()
            cargarTipoInmueble()
            cargarInmueblexEtapa(pInmueble)
        End If
    End Sub
    Private Sub cargarTipoConstruccion()
        selTpoConstruccion.DataSource = RtpoConstruccion.SeleccionarTodo(Me.Master.descEmpresa, True)
        selTpoConstruccion.DataTextField = "descTpoConstruccion"
        selTpoConstruccion.DataValueField = "idTpoConstruccion"
        selTpoConstruccion.DataBind()
    End Sub
    Private Sub cargarTipoInmueble()
        selTpoInmueble.DataSource = RtpoInmueble.SeleccionarTodo(Me.Master.descEmpresa, True)
        selTpoInmueble.DataTextField = "descTpoInmueble"
        selTpoInmueble.DataValueField = "idTpoInmueble"
        selTpoInmueble.DataBind()
    End Sub
    Private Function pInmueble() As EunidInmobiliarias
        inmueble = New EunidInmobiliarias
        inmueble.idProyecto = Me.Master.idProyecto
        inmueble.idEtapa = Me.Master.idEtapa
        inmueble.EediMazn = New EedificioManz
        inmueble.EediMazn.EtpoConstruccion = New EtpoConstruccion
        inmueble.EediMazn.EtpoConstruccion.idTpoConstruccion = selTpoConstruccion.Value
        inmueble.EmodeloInmueble = New EmodeloInmueble
        inmueble.EmodeloInmueble.EtpoInmueble = New EtpoInmueble
        inmueble.EmodeloInmueble.EtpoInmueble.idTpoInmueble = selTpoInmueble.Value
        inmueble.nroInmueble = txtNroInmmueble.Value
        Return inmueble
    End Function
    Private Sub cargarInmueblexEtapa(ByVal pUnidInmobiliaria As EunidInmobiliarias)
        inmuebles = RunidInmobiliarias.Reporte_InmueblesXEtapaVendidos(Me.Master.descEmpresa, False, pUnidInmobiliaria)
        Session("ListaInmuebles") = inmuebles
        If Not inmuebles Is Nothing Then
            gvwInmueblexEtapa.DataSource = inmuebles
            gvwInmueblexEtapa.DataBind()
            upInmuebleXEtapa.Update()

            Dim cantidades = From inm As EunidInmobiliarias In inmuebles _
                             Order By inm.descEstadoInmueble, inm.EmodeloInmueble.EtpoInmueble.idTpoInmueble _
                             Group inm By inm.descEstadoInmueble, inm.EmodeloInmueble.EtpoInmueble.idTpoInmueble Into Count()

            If cantidades.Count > 0 Then _
                lblCantidadTotalCasaDisponible.Text = String.Format(": {0:###,###,##00}", (cantidades.ElementAt(0).Count))

            If cantidades.Count > 1 Then _
                lblCantidadTotalDepartamentoDisponible.Text = String.Format(": {0:###,###,##00}", (cantidades.ElementAt(1).Count))

            If cantidades.Count > 2 Then _
                lblCantidadTotalEstacionamientoDisponible.Text = String.Format(": {0:###,###,##00}", (cantidades.ElementAt(2).Count))

            If cantidades.Count > 3 Then _
                lblCantidadTotalLavanderiaDisponible.Text = String.Format(": {0:###,###,##00}", (cantidades.ElementAt(3).Count))

            If cantidades.Count > 4 Then _
                lblCantidadTotalDepositoDisponible.Text = String.Format(": {0:###,###,##00}", (cantidades.ElementAt(4).Count))

            If cantidades.Count > 5 Then _
                lblCantidadTotalOficinaDisponible.Text = String.Format(": {0:###,###,##00}", (cantidades.ElementAt(5).Count))

            If cantidades.Count > 6 Then _
                lblCantidadOtrosDisponible.Text = String.Format(": {0:###,###,##00}", (cantidades.ElementAt(6).Count))
        End If
    End Sub
    Protected Sub gvwInmueblexEtapa_RowDatabound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) _
    Handles gvwInmueblexEtapa.RowDataBound
        If e.Row.RowType = DataControlRowType.DataRow Then
            e.Row.Attributes.Add("OnMouseOver", "Resaltar_On(this);")
            e.Row.Attributes.Add("OnMouseOut", "Resaltar_Off(this);")
            e.Row.Attributes("OnClick") = Page.ClientScript.GetPostBackClientHyperlink(Me.gvwInmueblexEtapa, "Select$" + e.Row.RowIndex.ToString)
            e.Row.Style.Add("cursor", "hand")
        End If
    End Sub
    Protected Sub gvwInmueblexEtapa_RowEditing(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewEditEventArgs) Handles gvwInmueblexEtapa.RowEditing

    End Sub
    Protected Sub btnBuscar_Click(ByVal sender As Object, ByVal e As System.EventArgs) _
    Handles btnBuscar.Click
        If selTpoConstruccion.SelectedIndex > 0 OrElse selTpoInmueble.SelectedIndex > 0 OrElse txtNroInmmueble.Value.Length > 0 Then
            cargarInmueblexEtapa(pInmueble)
        End If
    End Sub
    Protected Sub btnLimpiar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnLimpiar.Click
        selTpoConstruccion.SelectedIndex = 0
        upTpoConstruccion.Update()
        selTpoInmueble.SelectedIndex = 0
        upTpoInmueble.Update()
        txtNroInmmueble.Value = ""
        upNroInmueble.Update()
        gvwInmueblexEtapa.DataSource = Nothing
        upInmuebleXEtapa.Update()
    End Sub
    Protected Sub btnExcel_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnExcel.Click
        inmuebles = Session("ListaInmuebles")
        If Not inmuebles Is Nothing Then
            Dim fileName As String = "Vendidos{0}.xls"
            fileName = String.Format(fileName, DateTime.Now.ToShortDateString())
            Dim Response As HttpResponse = HttpContext.Current.Response
            Response.ContentType = "application/vnd.ms-excel"
            Response.Charset = "UTF-8"
            Response.ContentEncoding = System.Text.Encoding.Default
            Response.AddHeader("Content-Disposition", "attachment; filename=" + fileName)

            Response.Write("Nº Correlativo")
            Response.Write(vbTab)
            Response.Write("Descripción Inmueble")
            Response.Write(vbTab)
            Response.Write("Precio Venta")
            Response.Write(vbTab)
            Response.Write("Estado")
            Response.Write(vbTab)
            Response.Write("DNI Titular")
            Response.Write(vbTab)
            Response.Write("Nombre del Cliente")
            Response.Write(vbTab)
            Response.Write("DNI Conyuge")
            Response.Write(vbTab)
            Response.Write("Nombre del Conyugue")
            Response.Write(vbTab)
            Response.Write(vbCrLf)

            Dim value As String
            For Each inmueblexEtapa In inmuebles
                value = inmueblexEtapa.correlativo
                Response.Write(value)
                Response.Write(vbTab)

                value = inmueblexEtapa.EdificioTpoInmuebleModeloInmueble
                Response.Write(value)
                Response.Write(vbTab)

                value = inmueblexEtapa.valorVenta
                Response.Write(value)
                Response.Write(vbTab)

                value = inmueblexEtapa.descEstadoInmueble
                Response.Write(value)
                Response.Write(vbTab)

                value = inmueblexEtapa.nroDocumento
                Response.Write(value)
                Response.Write(vbTab)

                value = inmueblexEtapa.nombreCompletosCliente
                Response.Write(value)
                Response.Write(vbTab)

                value = inmueblexEtapa.nroDocumentoCy
                Response.Write(value)
                Response.Write(vbTab)

                value = inmueblexEtapa.nombreCompletosConyugue
                Response.Write(value)
                Response.Write(vbCrLf)
            Next
            Response.End()
        Else
            Dim jsMensaje As String = Nothing
            jsMensaje = "<script>javascript:alert('La consulta no pudo ser procesada. Por favor inténtelo de nuevo.');</script>)"
            Controls.Add(New LiteralControl(jsMensaje))
        End If
    End Sub

End Class
